import java.util.*;
public class test {
    /*给你一个整数数组 nums 和一个整数 k 。请你从 nums 中满足下述条件的全部子数组中找出最大子数组和：
    子数组的长度是 k，且
    子数组中的所有元素 各不相同 。
    返回满足题面要求的最大子数组和。如果不存在子数组满足这些条件，返回 0 。
    子数组 是数组中一段连续非空的元素序列。*/
    //Set法
    /*public static long seek(int[] nums,int k) {
        int n=nums.length;
        if(n<k)return 0;
        int left=0;
        int sum=0;
        int result=0;
        Set<Integer> arr=new HashSet<>();
        for(int i=0;i<n;i++){
            //判断是否有重复元素
            while(arr.contains(nums[i])){
                arr.remove(nums[left]);
                sum-=nums[left];
                left++;
            }
            //添加元素
            arr.add(nums[i]);
            sum+=nums[i];
            //判断窗口大小
            while(i-left+1>k){
                arr.remove(nums[left]);
                sum-=nums[left];
                left++;
            }
            if(i-left+1==k) {
                result=Math.max(result,sum);
            }
        }
        return result;
    }*/
    //Map法
    public static long seek(int[] nums,int k) {
        int n=nums.length;
        int left=0;
        long currentsum=0;
        long maxsum=0;
        Map<Integer,Integer> arr=new HashMap<>();
        for(int right=0;right<n;right++){
            //添加并记录元素
            arr.put(nums[right],arr.getOrDefault(nums[right],0)+1);
            currentsum+=nums[right];
            //判断窗口
            while(right-left+1>k){
                currentsum-=nums[left];
                arr.put(nums[left],arr.get(nums[left])-1);
                if(arr.get(nums[left])==0)
                    arr.remove(nums[left]);
                left++;
            }
            if(right-left+1==k&&arr.size()==k){
                maxsum=Math.max(maxsum,currentsum);
            }
        }
        return maxsum;
    }
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        int[] nums=new int[n];
        for(int i=0;i<n;i++){
            nums[i]=sc.nextInt();
        }
        int k=sc.nextInt();
        long result=seek(nums,k);
        System.out.println(result);
    }
}
